iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
Software Development

30天收斂後端開發心法系列 第 13

30天收斂後端開發心法 - (13) Laravel 產 PDF

  • 分享至 

  • xImage
  •  

繼上回介紹如何透過 Laravel 讀取與產出 Excel 檔案之後,
我們這次來介紹如何透過 mPDF 這個套件來產生 PDF 檔案。

安裝 mPDF 套件

使用 Composer 安裝:

composer require mpdf/mpdf

建立 Blade 模板

由於 mPDF 是以 HTML 轉換成 PDF,
所以我們需要先建立一個 Blade 模板,例如:resources/views/pdf/report.blade.php
你可以在這個 Blade 中使用標準 HTML + Blade 語法來排版內容。

產出 PDF 的程式流程

渲染 Blade 成 HTML 字串

use Illuminate\Support\Facades\View;

$html = View::make("pdf.$htmlName", ['parameter' => $fileData])->render();

說明:

"pdf.$htmlName":會去找 resources/views/pdf/{檔名}.blade.php
$fileData:傳進 Blade 模板的資料

建立 mPDF 實體並設定參數

use Mpdf\Mpdf;

$mpdf = new Mpdf([
    'mode' => 'utf-8',               // 使用 UTF-8 編碼,支援多語系文字
    'format' => 'A3',                // 紙張大小:A3(也可用 A4、Letter)
    'orientation' => 'L',            // L:橫向(Landscape),P:直向(Portrait)
    'autoScriptToLang' => true,      // 自動判斷語系
    'autoLangToFont' => true,        // 自動切換合適字型(如中文使用中文字型)
    'margin_bottom' => 0,            // 下邊界設為 0,排版更自由
]);

將 HTML 寫入 PDF

$mpdf->WriteHTML($html);

匯出 PDF 到指定路徑

$mpdf->Output($filePath, 'F');
'F' 表示儲存成檔案

其他常見模式:

  • 'I':直接在瀏覽器中開啟 PDF
  • 'D':下載 PDF
  • 'S':回傳 PDF 的內容(可用來作 base64 編碼)

上一篇
30天收斂後端開發心法 - (12) 如何用 Laravel 產 Excel
下一篇
30天收斂後端開發心法 - (14) Laravel Validation
系列文
30天收斂後端開發心法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言